﻿
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace DoctorReg
{
    public partial class FormPacientes2 : Form
    {
        int codigoAnterior;
        string nomeAnterior, distritoAnterior, sexoAnterior;
        DateTime dnAnterior;

        public void Alterar(int codigo, string nome, string distrito, string sexo, DateTime dn)
        {
            buttonAdicionar.Enabled = false;
            buttonAlterar.Enabled = true;
            LimparCampos();
            ColocarDados();
            nomeTextBox.Text = nome;
            distritoComboBox.Text = distrito;
            sexoComboBox.Text = sexo;
            dataNascimentoDateTimePicker.Value = dn;
            nomeAnterior = nome;
            distritoAnterior = distrito;
            sexoAnterior = sexo;
            dnAnterior = dn;
            codigoAnterior = codigo;
        }

        public FormPacientes2()
        {
            InitializeComponent();
        }

        private void pacientesBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.pacientesBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.consultasDataSet);

        }

        private void FormPacientes2_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'consultasDataSet.Pacientes' table. You can move, or remove it, as needed.
            this.pacientesTableAdapter.Fill(this.consultasDataSet.Pacientes);

        }

        private void buttonAdicionar_Click(object sender, EventArgs e)
        {
            if (ValidarDados())
            {
                ConsultasDataSetTableAdapters.PacientesTableAdapter
                adapterPacientes = new
                ConsultasDataSetTableAdapters.PacientesTableAdapter();
                try
                {
                    adapterPacientes.Insert(nomeTextBox.Text,
                    distritoComboBox.Text, sexoComboBox.Text,
                    dataNascimentoDateTimePicker.Value);
                    MessageBox.Show("Registo adicionado com sucesso!",
                    this.Text, MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, this.Text,
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }

        }

        public void Adicionar()
        {
            buttonAdicionar.Enabled = true;
            buttonAlterar.Enabled = false;
            LimparCampos();
            ColocarDados();
        }

        public void LimparCampos()
        {
            nomeTextBox.DataBindings.Clear();
            distritoComboBox.DataBindings.Clear();
            sexoComboBox.DataBindings.Clear();
            nomeTextBox.Text = "";
            distritoComboBox.Text = "";
            sexoComboBox.Text = "";
            nomeTextBox.Focus();
            dataNascimentoDateTimePicker.Value = System.DateTime.Now;
        }

        public void ColocarDados()
        {
            distritoComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            sexoComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            dataNascimentoDateTimePicker.Format =
            DateTimePickerFormat.Short;
            nomeTextBox.MaxLength = 50;
            ConsultasDataSetTableAdapters.DistritosTableAdapter
            adapterDistritos = new
            ConsultasDataSetTableAdapters.DistritosTableAdapter();
            ConsultasDataSet.DistritosDataTable tabDistritos = new
            ConsultasDataSet.DistritosDataTable();
            adapterDistritos.Fill(tabDistritos);
            foreach (DataRow registo in tabDistritos.Rows)
            {
                distritoComboBox.Items.Add(registo[0]);
            }
            sexoComboBox.Items.Add("M");
            sexoComboBox.Items.Add("F");
        }

        public bool ValidarDados()
        {
            if (nomeTextBox.Text.Length < 5)
            {
                MessageBox.Show("Erro no nome!", this.Text,
                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            else if (distritoComboBox.Text == "")
            {
                MessageBox.Show("Erro no distrito!", this.Text,
                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            else if (sexoComboBox.Text == "")
            {
                MessageBox.Show("Erro no campo sexo!", this.Text,
                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            else if (dataNascimentoDateTimePicker.Value >
            System.DateTime.Now)
            {
                MessageBox.Show("Erro na data de nascimento!", this.Text,
                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            else
            {
                return true;
            }
        }

        private void buttonAlterar_Click(object sender, EventArgs e)
        {
            if (ValidarDados())
            {
                ConsultasDataSetTableAdapters.PacientesTableAdapter
                adapterPacientes = new
                ConsultasDataSetTableAdapters.PacientesTableAdapter();
                try
                {
                    adapterPacientes.Update(nomeTextBox.Text,
                    distritoComboBox.Text, sexoComboBox.Text,
                    dataNascimentoDateTimePicker.Value, codigoAnterior,
                    nomeAnterior, distritoAnterior, sexoAnterior, dnAnterior,
                    codigoAnterior);
                    MessageBox.Show("Registo alterado com sucesso!",
                    this.Text, MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, this.Text,
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            
        }

        private void distritoLabel_Click(object sender, EventArgs e)
        {

        }


    }
}
